//////////////////////////////////////////////
// Configuration.h
//
//////////////////////////////////////////////

/// Defines / Macros -------------------------

#pragma once

/// Includes ---------------------------------

// nkGraphics
#include "../Dll/DllDefines.h"

#include "../Renderers/RenderingApi.h"

// nkExport
#include <NilkinsExport/Exportable/Exportable.h>

/// Class ------------------------------------
	
namespace nkGraphics
{
	class DLL_GRAPHICS_EXPORT Configuration final : public nkExport::Exportable
	{
		public :
		
			// Constructor
			Configuration () noexcept ;

			// Getters
			RENDERING_API getWantedApi () const ;
			bool getDisableRaytracing () const ;

			// Setters
			void setWantedApi (RENDERING_API v) ;
			void setDisableRaytracing (bool v) ;

			// Import / Export
			virtual void exportClassToTree (nkExport::Node* rootNode) override ;
			virtual void importClassFromTree (nkExport::Node* rootNode) override ;

		private :

			RENDERING_API _wantedApi ;
			bool _disableRaytracing ;
	} ;
}